class Student {
    public int age;
    public String name;
    static String classroom;

    public Student () {
        //此处this方法是在调用构造函数时调用别的构造方法

        //Ctrl  选择多个参数进行构建
        this (0, "happy");
        System.out.println ("不带参数的构造方法");
        System.out.println ("默认构造方法");
    }

    {
        //默认代码块的构造
        age = 20;
        name = "小李";
        System.out.println ("默认代码块的构造方法");
    }

    //静态代码块的构建顺序与定义顺序相关
    static {
        //静态代码块的构造方法
        classroom = "109";
        System.out.println ("静态代码块的构造方法 01");
    }

    static {
        //静态代码块的构造方法
        classroom = "110";
        System.out.println ("静态代码块的构造方法 02");
    }

    public Student (int a, String b) {
        this.age = a;
        this.name = b;
    }

    //Alt+Insert  可以快捷生成构造方法（不同参数）
    //Get  和  Set  分别是得到和修改类里面的成员变量值


}


public class Learn_4_28 {
    public static void main (String[] args) {
        //Student su = new Student ();

        //静态代码块在对象被加载的时候就构建，但是代码块必须要等到new出一个对象时才可以加载
        System.out.println (Student.classroom);
    }
}
